<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //var fn=function(){}
        // let fn = () => {

        // }
        //var fn=function(){}
        // let fn = () => {

        // }
        // var fn=function(){}
        // let fn=()=>{

        // }
        const SCHOOL = {
            name: "渣男培训学校"
        }
        window.name = "123";
        console.log(this);

        function getName() {
            console.log(this.name);
        }
        getName()
        let getName2 = () => {
            console.log(this.name);
        }
        getName2()
        getName.call(SCHOOL)
        getName2.call(SCHOOL)

        // const SCHOOL={
        //     name:"哈哈哈哈学校"
        // }window.name="234";
        // console.log(this);
        // function getName(){
        //     console.log(this.name);
        // }
        // getName()
        // let getName2 = () => {
        //     console.log(this.name);
        // }
        // getName2()
        // getName.call(SCHOOL)
        // getName2.call(SCHOOL)

        // const SCHOOL={
        //     name:"asdsadasd";
        // }
        // window.name="77798"
        // console.log(this);
        // function getName(){
        //     console.log(this.name);
        // }
        // getName()
        // let geName2=()=>{
        //     console.log(this.name);
        // }
        // getName2()
        // getname.call(SCHOOL)
        // getName2.call(SCHOOL)
        /*
            箭头函数开始的时候作用域的this只想某一个位置对象后就不会改变当前的this
            箭头函数不能作为构造函数的实例化对象
            箭头函数参数只有一个的话可以省略 入参左右的（）
            箭头函数参数里面只有一句话可以省略大括号（如果一句话含有return 那么return也省略）
        
            */
        // let Person = (name, age) => {
        //     this.name = name;
        //     this.age = age;
        // }
        // let zhanan = new Person("王思聪", "9999999");
        // console.log(zhanan);
        /*
        箭头函数开始的时候作用域的this只想某一个位置对象后就不会改变当前的this
        箭头函数不能作为构造函数的实例化对象
        箭头函数参数只有一个的话可以省略 入参左右的（）
        箭头函数参数里面只有一句话的话可以省略大括号 （如果一句话含有return 那么return也省略）
        let Person=(name,age)=>{
            this.name=name;
            this.age=age;
        }
        let zhanan =new Person("xxx","123123123");
        console.log(zhannan);
        
        箭头函数开始的时候作用域的this指向某一个位置对象后就不会改变当前的this
        箭头函数不能作为构造函数实例化对象
        箭头函数参数只有一个的话可以省略 入参左右的（）
        箭头函数参数里只有一句话可以省略大括号 （如果一句话含有return 那么return也省略）

        let Person=(name,age)=>{
            this.name=name;
            this.age=age;
        }
        let zhazha=new Person("xxx","2222");
        console.log(zhanan);
        */
        let fn = q => q + q;
        console.log(fn(3));
        // let fn = q => q + q;
        // console.log(fn(3));
        // let fn = q => q + q;
        // console.log(fn(2));
    </script>
</body>

</html>